//存储状态（变量）
const state = {
    loading: false,
    subloading: true,
    isOpen: [],//核保处理页面 保存是否打开标记
    isXqOpen: [],//续核处理页面 保存是否打开标记
};

//  mutations 里面放置的是我们操作state对象属性的方法(修改状态，并且是同步的。在组件中使用$store.commit('',params))
const mutations = {
    SET_LOADING(state,Bool){
        if(Bool)
        state.loading = true;
        else
        state.loading = false;
    },
    SET_SUBLOADING(state,Bool){
        if(Bool)
        state.subloading = true;
        else
        state.subloading = false;
    },
    SET_IS_OPEN(state,Bool){
        if(state.isOpen.indexOf(Bool)==-1){
            state.isOpen.push(Bool)
        }
    },
    DELETE_ISOPEN(state,index){
        if(state.isOpen.length){
            state.isOpen.map((item,ind)=>{
                if(ind == index){
                    state.isOpen.splice(ind,1);
                }
            })
        }
    },
    SET_IS_XQ_OPEN(state,Bool){
        if(state.isXqOpen.indexOf(Bool)==-1){
            state.isXqOpen.push(Bool)
        }
    },
    DELETE_XQ_ISOPEN(state,index){
        if(state.isXqOpen.length){
            state.isXqOpen.map((item,ind)=>{
                if(ind == index){
                    state.isXqOpen.splice(ind,1);
                }
            })
        }
    }

};

// actions是异步操作。在组件中使用是$store.dispath('')
const actions = {
    CHANGE_LOADING({commit},Bool){
        commit('SET_LOADING',Bool);
    },
    CHNAGE_SUBLOADING({commit},Bool){
        commit('SET_SUBLOADING',Bool);
    },
    CHANGE_IS_OPEN({commit},Bool){
        commit('SET_IS_OPEN',Bool);
    },
    CHANGE_DEL_ISOPEN({commit},Bool){
        commit('DELETE_ISOPEN',Bool);
    },
    CHANGE_IS_XQ_OPEN({commit},Bool){
        commit('SET_IS_XQ_OPEN',Bool);
    },
    CHANGE_DEL_XQ_ISOPEN({commit},Bool){
        commit('DELETE_XQ_ISOPEN',Bool);
    }
};

// 对数据获取之前的再次编译，可以理解为state的计算属性。我们在组件中使用 $sotre.getters.fun()
const getters = {
    GET_LOADING(){
        return state.loading;
    },
    GET_SUBLOADING(){
        return state.subloading;
    },
    GET_IS_OPEN(){
        return state.isOpen
    },
    GET_IS_XQ_OPEN(){
        return state.isXqOpen
    }
};

// 不要忘记把state, mutations等暴露出去。
export default {
    namespaced:true, // 启用命令空间后，action mutations方法只在当前module有效 在组件中调用需要加上当前模块名称例如this.$store.dispatch('login/actAdd',10)
    state,
    mutations,
    actions,
    getters
}
